export interface ITableParams {
  pageNum: number;
  pageSize: number;
}

export interface ResPage {
  code: number;
  msg: string;
}

export interface ITableResPage<T> extends ResPage {
  data?: T[];
  rows?: T[];
  total?: number;
}

export interface ITableCHandle {
  title: string;
  hasPermi: Array<string>;
  normal: boolean;
  showkey?: Array<string>;
  funp: Array<string>;
}

export interface ITableColumn {
  title: string;
  dataIndex: string;
  key?: string;
  width?: number;
  dataType?: "select";
  fixed?: "left" | "right";
  handle?: ITableCHandle[];
}

export interface IOperHandle<T> {
  [key: string]: (row: T, type: string) => void;
}

export interface TRowkeyRecord {
  id: string | number;
  [key: string]: string | number;
}
